package com.txts.road.app.device.service;

import com.txts.road.app.device.model.entity.DeviceConfigEntity;
import com.txts.road.app.device.model.dto.DeviceConfigDTO;
import com.txts.road.app.device.model.dto.FirmwareUpgradeDTO;
import com.txts.road.app.device.model.vo.DeviceConfigVO;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * 设备配置服务类
 *
 * @author baoyr
 * @since 2025-07-17 10:47
 */
public interface DeviceConfigService extends IService<DeviceConfigEntity> {


    /**
     * 获取设备配置
     *
     * @param deviceId 设备ID
     * @return 设备配置列表
     */
    List<DeviceConfigVO> getDeviceConfig(Long deviceId);

    /**
     * 更新设备配置
     *
     * @return true 更新成功 false 更新失败
     */
    Boolean updateDeviceConfig(DeviceConfigDTO configDTO);


    /**
     * 固件升级
     *
     * @param deviceId   设备ID
     * @param upgradeDTO 固件升级参数
     * @return true 升级成功 false 升级失败
     */
    Boolean upgradeFirmware(Long deviceId, FirmwareUpgradeDTO upgradeDTO);

    /**
     * 获取固件升级进度
     *
     * @param deviceId 设备ID
     * @return 固件升级进度
     */
    Double getUpgradeProgress(Long deviceId);
}
